↳ Prolog
↳ PrologToPiTRSProof
preorder_in(T, Xs) → U1(T, Xs, preorder_dl_in(T, -(Xs, [])))
preorder_dl_in(tree(L, X, R), -(.(X, Xs), Zs)) → U2(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_dl_in(nil, -(X, X)) → preorder_dl_out(nil, -(X, X))
U2(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U3(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U3(L, X, R, Xs, Zs, preorder_dl_out(R, -(Ys, Zs))) → preorder_dl_out(tree(L, X, R), -(.(X, Xs), Zs))
U1(T, Xs, preorder_dl_out(T, -(Xs, []))) → preorder_out(T, Xs)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
preorder_in(T, Xs) → U1(T, Xs, preorder_dl_in(T, -(Xs, [])))
preorder_dl_in(tree(L, X, R), -(.(X, Xs), Zs)) → U2(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_dl_in(nil, -(X, X)) → preorder_dl_out(nil, -(X, X))
U2(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U3(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U3(L, X, R, Xs, Zs, preorder_dl_out(R, -(Ys, Zs))) → preorder_dl_out(tree(L, X, R), -(.(X, Xs), Zs))
U1(T, Xs, preorder_dl_out(T, -(Xs, []))) → preorder_out(T, Xs)
PREORDER_IN(T, Xs) → U11(T, Xs, preorder_dl_in(T, -(Xs, [])))
PREORDER_IN(T, Xs) → PREORDER_DL_IN(T, -(Xs, []))
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → U21(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN(L, -(Xs, Ys))
U21(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U31(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U21(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → PREORDER_DL_IN(R, -(Ys, Zs))
preorder_in(T, Xs) → U1(T, Xs, preorder_dl_in(T, -(Xs, [])))
preorder_dl_in(tree(L, X, R), -(.(X, Xs), Zs)) → U2(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_dl_in(nil, -(X, X)) → preorder_dl_out(nil, -(X, X))
U2(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U3(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U3(L, X, R, Xs, Zs, preorder_dl_out(R, -(Ys, Zs))) → preorder_dl_out(tree(L, X, R), -(.(X, Xs), Zs))
U1(T, Xs, preorder_dl_out(T, -(Xs, []))) → preorder_out(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PREORDER_IN(T, Xs) → U11(T, Xs, preorder_dl_in(T, -(Xs, [])))
PREORDER_IN(T, Xs) → PREORDER_DL_IN(T, -(Xs, []))
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → U21(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN(L, -(Xs, Ys))
U21(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U31(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U21(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → PREORDER_DL_IN(R, -(Ys, Zs))
preorder_in(T, Xs) → U1(T, Xs, preorder_dl_in(T, -(Xs, [])))
preorder_dl_in(tree(L, X, R), -(.(X, Xs), Zs)) → U2(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_dl_in(nil, -(X, X)) → preorder_dl_out(nil, -(X, X))
U2(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U3(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U3(L, X, R, Xs, Zs, preorder_dl_out(R, -(Ys, Zs))) → preorder_dl_out(tree(L, X, R), -(.(X, Xs), Zs))
U1(T, Xs, preorder_dl_out(T, -(Xs, []))) → preorder_out(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN(L, -(Xs, Ys))
U21(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → PREORDER_DL_IN(R, -(Ys, Zs))
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → U21(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_in(T, Xs) → U1(T, Xs, preorder_dl_in(T, -(Xs, [])))
preorder_dl_in(tree(L, X, R), -(.(X, Xs), Zs)) → U2(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_dl_in(nil, -(X, X)) → preorder_dl_out(nil, -(X, X))
U2(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U3(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U3(L, X, R, Xs, Zs, preorder_dl_out(R, -(Ys, Zs))) → preorder_dl_out(tree(L, X, R), -(.(X, Xs), Zs))
U1(T, Xs, preorder_dl_out(T, -(Xs, []))) → preorder_out(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN(L, -(Xs, Ys))
U21(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → PREORDER_DL_IN(R, -(Ys, Zs))
PREORDER_DL_IN(tree(L, X, R), -(.(X, Xs), Zs)) → U21(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_dl_in(tree(L, X, R), -(.(X, Xs), Zs)) → U2(L, X, R, Xs, Zs, preorder_dl_in(L, -(Xs, Ys)))
preorder_dl_in(nil, -(X, X)) → preorder_dl_out(nil, -(X, X))
U2(L, X, R, Xs, Zs, preorder_dl_out(L, -(Xs, Ys))) → U3(L, X, R, Xs, Zs, preorder_dl_in(R, -(Ys, Zs)))
U3(L, X, R, Xs, Zs, preorder_dl_out(R, -(Ys, Zs))) → preorder_dl_out(tree(L, X, R), -(.(X, Xs), Zs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
PREORDER_DL_IN(tree(L, X, R)) → U21(R, preorder_dl_in(L))
U21(R, preorder_dl_out) → PREORDER_DL_IN(R)
PREORDER_DL_IN(tree(L, X, R)) → PREORDER_DL_IN(L)
preorder_dl_in(tree(L, X, R)) → U2(R, preorder_dl_in(L))
preorder_dl_in(nil) → preorder_dl_out
U2(R, preorder_dl_out) → U3(preorder_dl_in(R))
U3(preorder_dl_out) → preorder_dl_out
preorder_dl_in(x0)
U2(x0, x1)
U3(x0)
From the DPs we obtained the following set of size-change graphs: